#include "gd32f30x.h"
#include "FreeRTOS.h"
#include "event_groups.h"
#include "timers.h"
#include "portmacro.h"
extern EventGroupHandle_t EventGroup_Handle;
BaseType_t xHigherPriorityTaskWoken;

uint8_t kkey_num;

void Key_Init(void)
{
    rcu_periph_clock_enable(RCU_GPIOA);
    gpio_init(GPIOA, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, GPIO_PIN_0);
    // rcu_periph_clock_enable(RCU_GPIOC);
    // gpio_init(GPIOC, GPIO_MODE_IPD, GPIO_OSPEED_50MHZ, GPIO_PIN_14);


    nvic_irq_enable(EXTI0_IRQn, 1, 1);
    exti_init(EXTI_0, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
    exti_interrupt_enable(EXTI_0);

    // nvic_irq_enable(EXTI10_15_IRQn, 1, 1);
    // exti_init(EXTI_14, EXTI_INTERRUPT, EXTI_TRIG_FALLING);
    // exti_interrupt_enable(EXTI_14);
}
void EXTI0_IRQHandler(void)
{
    if(exti_interrupt_flag_get(EXTI_0) == SET)
    {
        xEventGroupSetBitsFromISR(EventGroup_Handle, (EventBits_t)0x03, &xHigherPriorityTaskWoken);
    }
    exti_interrupt_flag_clear(EXTI_0);
}
// void EXTI10_15_IRQHandler(void)
// {
//     if(exti_interrupt_flag_get(EXTI_14) == SET)
//     {
//         kkey_num++;
//     }
//     exti_interrupt_flag_clear(EXTI_14);
// }